home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  8.1 KB  |  270 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces. 
  5.  
  6.      Version:    Technology:    Mac OS 9.0
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1994-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __TEXTENCODINGCONVERTER__
  18. #define __TEXTENCODINGCONVERTER__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __TEXTCOMMON__
  25.     #include <TextCommon.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. typedef OSType                             TECPluginSignature;
  52. typedef UInt32                             TECPluginVersion;
  53. /* plugin signatures */
  54. enum {
  55.     kTECSignature                = FOUR_CHAR_CODE('encv'),
  56.     kTECUnicodePluginSignature    = FOUR_CHAR_CODE('puni'),
  57.     kTECJapanesePluginSignature    = FOUR_CHAR_CODE('pjpn'),
  58.     kTECChinesePluginSignature    = FOUR_CHAR_CODE('pzho'),
  59.     kTECKoreanPluginSignature    = FOUR_CHAR_CODE('pkor')
  60. };
  61.  
  62.  
  63. /* converter object reference */
  64. typedef struct OpaqueTECObjectRef*         TECObjectRef;
  65. typedef struct OpaqueTECSnifferObjectRef*  TECSnifferObjectRef;
  66. typedef OSType                             TECPluginSig;
  67.  
  68. struct TECConversionInfo {
  69.     TextEncoding                     sourceEncoding;
  70.     TextEncoding                     destinationEncoding;
  71.     UInt16                             reserved1;
  72.     UInt16                             reserved2;
  73. };
  74. typedef struct TECConversionInfo        TECConversionInfo;
  75. /* return number of encodings types supported by user's configuraton of the encoding converter */
  76. EXTERN_API( OSStatus )
  77. TECCountAvailableTextEncodings    (ItemCount *            numberEncodings);
  78.  
  79. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  80. EXTERN_API( OSStatus )
  81. TECGetAvailableTextEncodings    (TextEncoding             availableEncodings[],
  82.                                  ItemCount                 maxAvailableEncodings,
  83.                                  ItemCount *            actualAvailableEncodings);
  84.  
  85. /* return number of from-to encoding conversion pairs supported  */
  86. EXTERN_API( OSStatus )
  87. TECCountDirectTextEncodingConversions (ItemCount *        numberOfEncodings);
  88.  
  89. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  90. EXTERN_API( OSStatus )
  91. TECGetDirectTextEncodingConversions (TECConversionInfo     availableConversions[],
  92.                                  ItemCount                 maxAvailableConversions,
  93.                                  ItemCount *            actualAvailableConversions);
  94.  
  95. /* return number of encodings a given encoding can be converter into */
  96. EXTERN_API( OSStatus )
  97. TECCountDestinationTextEncodings (TextEncoding             inputEncoding,
  98.                                  ItemCount *            numberOfEncodings);
  99.  
  100. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  101. EXTERN_API( OSStatus )
  102. TECGetDestinationTextEncodings    (TextEncoding             inputEncoding,
  103.                                  TextEncoding             destinationEncodings[],
  104.                                  ItemCount                 maxDestinationEncodings,
  105.                                  ItemCount *            actualDestinationEncodings);
  106.  
  107. /* get info about a text encoding */
  108. EXTERN_API( OSStatus )
  109. TECGetTextEncodingInternetName    (TextEncoding             textEncoding,
  110.                                  Str255                 encodingName);
  111.  
  112. EXTERN_API( OSStatus )
  113. TECGetTextEncodingFromInternetName (TextEncoding *        textEncoding,
  114.                                  ConstStr255Param         encodingName);
  115.  
  116. /* create/dispose converters */
  117. EXTERN_API( OSStatus )
  118. TECCreateConverter                (TECObjectRef *            newEncodingConverter,
  119.                                  TextEncoding             inputEncoding,
  120.                                  TextEncoding             outputEncoding);
  121.  
  122. EXTERN_API( OSStatus )
  123. TECCreateConverterFromPath        (TECObjectRef *            newEncodingConverter,
  124.                                  const TextEncoding     inPath[],
  125.                                  ItemCount                 inEncodings);
  126.  
  127. EXTERN_API( OSStatus )
  128. TECDisposeConverter                (TECObjectRef             newEncodingConverter);
  129.  
  130. /* convert text encodings */
  131. EXTERN_API( OSStatus )
  132. TECClearConverterContextInfo    (TECObjectRef             encodingConverter);
  133.  
  134. EXTERN_API( OSStatus )
  135. TECConvertText                    (TECObjectRef             encodingConverter,
  136.                                  ConstTextPtr             inputBuffer,
  137.                                  ByteCount                 inputBufferLength,
  138.                                  ByteCount *            actualInputLength,
  139.                                  TextPtr                 outputBuffer,
  140.                                  ByteCount                 outputBufferLength,
  141.                                  ByteCount *            actualOutputLength);
  142.  
  143. EXTERN_API( OSStatus )
  144. TECFlushText                    (TECObjectRef             encodingConverter,
  145.                                  TextPtr                 outputBuffer,
  146.                                  ByteCount                 outputBufferLength,
  147.                                  ByteCount *            actualOutputLength);
  148.  
  149. /* one-to-many routines */
  150. EXTERN_API( OSStatus )
  151. TECCountSubTextEncodings        (TextEncoding             inputEncoding,
  152.                                  ItemCount *            numberOfEncodings);
  153.  
  154. EXTERN_API( OSStatus )
  155. TECGetSubTextEncodings            (TextEncoding             inputEncoding,
  156.                                  TextEncoding             subEncodings[],
  157.                                  ItemCount                 maxSubEncodings,
  158.                                  ItemCount *            actualSubEncodings);
  159.  
  160. EXTERN_API( OSStatus )
  161. TECGetEncodingList                (TECObjectRef             encodingConverter,
  162.                                  ItemCount *            numEncodings,
  163.                                  Handle *                encodingList);
  164.  
  165. EXTERN_API( OSStatus )
  166. TECCreateOneToManyConverter        (TECObjectRef *            newEncodingConverter,
  167.                                  TextEncoding             inputEncoding,
  168.                                  ItemCount                 numOutputEncodings,
  169.                                  const TextEncoding     outputEncodings[]);
  170.  
  171. EXTERN_API( OSStatus )
  172. TECConvertTextToMultipleEncodings (TECObjectRef         encodingConverter,
  173.                                  ConstTextPtr             inputBuffer,
  174.                                  ByteCount                 inputBufferLength,
  175.                                  ByteCount *            actualInputLength,
  176.                                  TextPtr                 outputBuffer,
  177.                                  ByteCount                 outputBufferLength,
  178.                                  ByteCount *            actualOutputLength,
  179.                                  TextEncodingRun         outEncodingsBuffer[],
  180.                                  ItemCount                 maxOutEncodingRuns,
  181.                                  ItemCount *            actualOutEncodingRuns);
  182.  
  183. EXTERN_API( OSStatus )
  184. TECFlushMultipleEncodings        (TECObjectRef             encodingConverter,
  185.                                  TextPtr                 outputBuffer,
  186.                                  ByteCount                 outputBufferLength,
  187.                                  ByteCount *            actualOutputLength,
  188.                                  TextEncodingRun         outEncodingsBuffer[],
  189.                                  ItemCount                 maxOutEncodingRuns,
  190.                                  ItemCount *            actualOutEncodingRuns);
  191.  
  192. /* international internet info */
  193. EXTERN_API( OSStatus )
  194. TECCountWebTextEncodings        (RegionCode             locale,
  195.                                  ItemCount *            numberEncodings);
  196.  
  197. EXTERN_API( OSStatus )
  198. TECGetWebTextEncodings            (RegionCode             locale,
  199.                                  TextEncoding             availableEncodings[],
  200.                                  ItemCount                 maxAvailableEncodings,
  201.                                  ItemCount *            actualAvailableEncodings);
  202.  
  203. EXTERN_API( OSStatus )
  204. TECCountMailTextEncodings        (RegionCode             locale,
  205.                                  ItemCount *            numberEncodings);
  206.  
  207. EXTERN_API( OSStatus )
  208. TECGetMailTextEncodings            (RegionCode             locale,
  209.                                  TextEncoding             availableEncodings[],
  210.                                  ItemCount                 maxAvailableEncodings,
  211.                                  ItemCount *            actualAvailableEncodings);
  212.  
  213. /* examine text encodings */
  214. EXTERN_API( OSStatus )
  215. TECCountAvailableSniffers        (ItemCount *            numberOfEncodings);
  216.  
  217. EXTERN_API( OSStatus )
  218. TECGetAvailableSniffers            (TextEncoding             availableSniffers[],
  219.                                  ItemCount                 maxAvailableSniffers,
  220.                                  ItemCount *            actualAvailableSniffers);
  221.  
  222. EXTERN_API( OSStatus )
  223. TECCreateSniffer                (TECSnifferObjectRef *    encodingSniffer,
  224.                                  TextEncoding             testEncodings[],
  225.                                  ItemCount                 numTextEncodings);
  226.  
  227. EXTERN_API( OSStatus )
  228. TECSniffTextEncoding            (TECSnifferObjectRef     encodingSniffer,
  229.                                  TextPtr                 inputBuffer,
  230.                                  ByteCount                 inputBufferLength,
  231.                                  TextEncoding             testEncodings[],
  232.                                  ItemCount                 numTextEncodings,
  233.                                  ItemCount                 numErrsArray[],
  234.                                  ItemCount                 maxErrs,
  235.                                  ItemCount                 numFeaturesArray[],
  236.                                  ItemCount                 maxFeatures);
  237.  
  238. EXTERN_API( OSStatus )
  239. TECDisposeSniffer                (TECSnifferObjectRef     encodingSniffer);
  240.  
  241. EXTERN_API( OSStatus )
  242. TECClearSnifferContextInfo        (TECSnifferObjectRef     encodingSniffer);
  243.  
  244. EXTERN_API( OSStatus )
  245. TECSetBasicOptions                (TECObjectRef             encodingConverter,
  246.                                  OptionBits             controlFlags);
  247.  
  248.  
  249.  
  250. #if PRAGMA_STRUCT_ALIGN
  251.     #pragma options align=reset
  252. #elif PRAGMA_STRUCT_PACKPUSH
  253.     #pragma pack(pop)
  254. #elif PRAGMA_STRUCT_PACK
  255.     #pragma pack()
  256. #endif
  257.  
  258. #ifdef PRAGMA_IMPORT_OFF
  259. #pragma import off
  260. #elif PRAGMA_IMPORT
  261. #pragma import reset
  262. #endif
  263.  
  264. #ifdef __cplusplus
  265. }
  266. #endif
  267.  
  268. #endif /* __TEXTENCODINGCONVERTER__ */
  269.  
  270.